package com.zzyl.nursing.mapper;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import com.zzyl.nursing.domain.NursingTask;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzyl.nursing.dto.NursingTaskDto;
import com.zzyl.nursing.dto.NursingTaskDtos;
import com.zzyl.nursing.vo.NursingTaskVo;
import org.apache.ibatis.annotations.*;
import org.springframework.security.core.parameters.P;

/**
 * 护理任务Mapper接口
 * 
 * @author ruoyi
 * @date 2024-09-27
 */
@Mapper
public interface NursingTaskMapper extends BaseMapper<NursingTask>
{
    /**
     * 查询护理任务
     * 
     * @param id 护理任务主键
     * @return 护理任务
     */
    public NursingTask selectNursingTaskById(Long id);

    /**
     * 查询护理任务列表
     * 
     * @param nursingTask 护理任务
     * @return 护理任务集合
     */
    public List<NursingTask> selectNursingTaskList(NursingTaskDto nursingTask);

    /**
     * 新增护理任务
     * 
     * @param nursingTask 护理任务
     * @return 结果
     */
    public int insertNursingTask(NursingTask nursingTask);

    /**
     * 修改护理任务
     * 
     * @param nursingTask 护理任务
     * @return 结果
     */
    public int updateNursingTask(NursingTask nursingTask);

    /**
     * 删除护理任务
     * 
     * @param id 护理任务主键
     * @return 结果
     */
    public int deleteNursingTaskById(Long id);

    /**
     * 批量删除护理任务
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteNursingTaskByIds(Long[] ids);

    @Select("select nursing_id from nursing_task")
    String selectNursingid();

    String selectNursingGetById(@Param("id")Integer id);

    @Select("select nick_name from sys_user where user_id=#{id}")
    String selectAdmin(@Param("id") Integer result);


    String selectNursingLeave(@Param("name") String projectName);

    @Update(" update nursing_task set status = 3, cancel_reason = #{reason} where id = #{taskId} ")
    void updateByTaskId(NursingTaskDtos nursingTaskDtos);


    @Update(" update nursing_task set status = 2, real_server_time = #{estimatedServerTime}, mark = #{mark}, task_image = #{taskImage} where id = #{taskId}")
    void fulfillment(NursingTaskDtos nursingTaskDtos);

    @Update("update nursing_task set estimated_server_time=#{estimatedServerTime} where id=#{taskId}")
    void updateTime(NursingTaskDtos nursingTaskDtos);
}
